package com.creatorblue.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import com.creatorblue.bean.UserInfo;

/**
 * 用户信息dao层类
 * @author zhuq
 *
 */
@Mapper
@CacheConfig(cacheNames = "user")
public interface UserInfoMapper {
	
	/**
	 * 条件查询列表记录
	 * @param map 查询参数
	 * @return
	 */
	@Cacheable
	List<UserInfo> queryAll(Map<String, Object> map);
	
	/**
	 * 根据id或账号查询单个用户信息
	 * @param id 主键ID
	 * @param userName 账号
	 * @return
	 */
	//@Cacheable
	UserInfo queryOne(@Param("id")Integer id, @Param("name")String userName);
	
	/**
	 * 新增
	 * @param info 待新增的用户对象
	 * @return
	 */
	@CacheEvict(allEntries = true)
	int insert(UserInfo info);
	
	/**
	 * 修改
	 * @param info 待修改的用户对象
	 * @return
	 */
	@CacheEvict(allEntries = true)
	int update(UserInfo info);
	
	/**
	 * 删除
	 * @param ids 待删除的主键ID数组
	 * @return
	 */
	@CacheEvict(allEntries = true)
	int delete(Integer[] ids);
}
